<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
	<title>YUI Library Examples: Get Utility: Getting a Script Node with JSON Data from a Web Service</title>
    

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    	<link rel="stylesheet" type="text/css" href="../../assets/yui.css" >

<style>
/*Supplemental CSS for the YUI distribution*/
#custom-doc { width: 95%; min-width: 950px; }
#pagetitle {background-image: url(../../assets/bg_hd.gif);}
</style>

<link rel="stylesheet" type="text/css" href="../../assets/dpSyntaxHighlighter.css">
<!--Script and CSS includes for YUI dependencies on this page-->
<link rel="stylesheet" type="text/css" href="../../build/logger/assets/skins/sam/logger.css" />
<link rel="stylesheet" type="text/css" href="../../build/button/assets/skins/sam/button.css" />
<script type="text/javascript" src="../../build/yuiloader/yuiloader-min.js"></script>
<script type="text/javascript" src="../../build/event/event-min.js"></script>
<script type="text/javascript" src="../../build/dom/dom-min.js"></script>
<script type="text/javascript" src="../../build/logger/logger-min.js"></script>
<script type="text/javascript" src="../../build/element/element-min.js"></script>
<script type="text/javascript" src="../../build/button/button-min.js"></script>


<!--begin custom header content for this example-->
<style type="text/css">
#container ol {
	/*bringing lists on to the page with breathing room */
	margin-left:2em !important;
}

#container ol li {
	/*giving OL's LIs generated numbers*/
	list-style: decimal outside !important;	
}

#container h3 {
	margin-top: 1em;
}
</style>
<!--end custom header content for this example-->


<script type="text/javascript">
//enable passthrough of errors from YUI Event:
if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
	YAHOO.util.Event.throwErrors = true;
}
</script>
</head>
<body id="yahoo-com" class="yui-skin-sam">
<div id="custom-doc" class="yui-t2">
<div id="hd">
	<div id="ygunav">
		<p><em><a href="http://developer.yahoo.com/yui/">YUI Library Home</a></em></p>
		<form action="http://search.yahoo.com/search" id="sitesearchform">
		<input name="vs" type="hidden" value="developer.yahoo.com">
		<input name="vs" type="hidden" value="yuiblog.com">
		<div id="sitesearch">
			<label for="searchinput">Site Search (YDN &amp; YUIBlog): </label>
			<input type="text" id="searchinput" name="p">
			<input type="submit" value="Search" id="searchsubmit" class="ygbt">
		</div>
		</form>	</div>
	<div id="ygma"><a href="../../"><img src="../../assets/yui.gif"  border="0" height="38"></a></div>
	<div id="pagetitle"><h1>YUI Library Examples: Get Utility: Getting a Script Node with JSON Data from a Web Service</h1></div>
</div>
<div id="bd">
	
	<div id="yui-main">
		<div class="yui-b">
		  <div class="yui-ge">
			  <div class="yui-u first example">

    
	<div class="promo">
	<h1>Get Utility: Getting a Script Node with JSON Data from a Web Service</h1>
	
	<div class="exampleIntro">
	<p>This example employs the <a href="http://developer.yahoo.com/yui/get/">YUI Get Utility</a> in a simple use case: retrieving JSON data from a cross-domain web service. While this is a relatively common usage, it's important to understand the security ramifications of this technique. Scripts loaded via the Get Utility (or any other &quot;script node&quot; solution) execute immediately once they are loaded. If you do not fully control (or fully trust) the script's source, this is not a safe technique and it can put the security of your users' data at risk. (For more information on the dangers of cross-site scripting [XSS] exploits, <a href="http://en.wikipedia.org/wiki/Cross-site_scripting">check out the Wikipedia entry on this subject</a>.)</p>
<p>Here, we will use a trusted Yahoo! Search web service called <a href="http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html">Site Explorer</a> to return a list of inbound links for a given URL. The principal difference between this example and similar examples using <a href="http://developer.yahoo.com/yui/connection/">YUI Connection Manager</a> is that this technique does not require a server-side proxy. The browser connects directly to the third-party web service without bouncing through a proxy page as is required when using the XMLHttpRequest object (on which Connection Manager relies).</p>
			
	</div>	
					
	<div class="example-container module ">
			<div class="hd exampleHd">
			<p class="newWindowButton yui-skin-sam"><!--<span id="newWindowLinkx"><span class="first-child">--><a href="get-script-basic_clean.html" target="_blank">View example in new window.</a><!--</span></span>-->		
		</div>		<div id="example-canvas" class="bd">
	
		
	<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
	
	<div id="container">

    <!--Use a real form that works without JavaScript:-->
    <form method="GET" action="http://siteexplorer.search.yahoo.com/advsearch" id="siteExplorer">

        <label for="searchString">Site URL:</label> <input type="text" name="p" id="searchString" value="http://developer.yahoo.com/yui" size="40">
        
        <input type="hidden" name="bwm" value="i">
        <input type="hidden" name="bwms" value="p">
    
        <input type="submit" id="getSiteExplorerData" value="Click here to get JSON data.">
    
    </form>

    <div id="results">
        <!--JSON output will be written to the DOM here-->
        
    </div>
</div>

<script type="text/javascript">
//create a namespace for this example:
YAHOO.namespace("example.SiteExplorer");

//This example uses the "Module Pattern"; a full explanation of 
//this pattern can be found on yuiblog:
// http://yuiblog.com/blog/2007/06/12/module-pattern
YAHOO.example.SiteExplorer = function() {

    //set up some shortcuts in case our typing fingers
    //get lazy:
    var Event = YAHOO.util.Event,
        Dom = YAHOO.util.Dom,
        Button = YAHOO.widget.Button,
        Get = YAHOO.util.Get,
        elResults = Dom.get("results"),
        tIds = {},
        loading = false,
        current = null;
        
    // We use the Get Utility's success handler in conjunction with
    // the web service callback in order to detect bad responses 
    // from the web service.
    var onSiteExplorerSuccess = function(o) {

        // stop blocking requests
        loading = false;

        // A success response means the script node is inserted.  However, the
        // utility is unable to detect whether or not the content of the script
        // node is correct, or even if there was a bad response (like a 404
        // error).  To get around this, we use the web service callback to
        // verify that the script contents was correct.
        if (o.tId in tIds) {
YAHOO.log("The Get Utility has fired the success handler indicating that the " +
          "requested script has loaded and is ready for use.", "info", "example");
        } else {
YAHOO.log("The Get utility has fired onSuccess but the webservice callback did not " +
          "fire.  We could retry the transaction here, or notify the user of the " +
          "failure.", "info", "example");
        }

    }

    var onSiteExplorerFailure = function(o) {
YAHOO.log("The Get Utility failed.", "info", "example");
    }
    
    //function to retrieve data from Yahoo! Site Explorer web service --
    // http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html
    var getSiteExplorerData = function() {
        YAHOO.log("Button clicked; getSiteExplorerData firing.", "info", "example");

        // block multiple requests
        if (loading) {
            return;
        }
        loading = true;
        
        //Load the transitional state of the results section:
        elResults.innerHTML = "<h3>Retrieving incoming links for " +
            Dom.get("searchString").value + ":</h3>" +
            "<img src='http://l.yimg.com/a/i/nt/ic/ut/bsc/busybar_1.gif' " +
            "alt='Please wait...'>";
        
        //prepare the URL for the Yahoo Site Explorer API:
        var sURL = "http://search.yahooapis.com/SiteExplorerService/V1/inlinkData?" +
            "appid=3wEDxLHV34HvAU2lMnI51S4Qra5m.baugqoSv4gcRllqqVZm3UrMDZWToMivf5BJ3Mom" +
            "&results=20&output=json&omit_inlinks=domain" +
            "&callback=YAHOO.example.SiteExplorer.callback" +
            "&query=" + encodeURIComponent(Dom.get("searchString").value);
        
        //This simple line is the call to the Get Utility; we pass
        //in the URL and the configuration object, which in this case
        //consists merely of our success and failure callbacks:
        var transactionObj = Get.script(sURL, {
            onSuccess: onSiteExplorerSuccess,
            onFailure: onSiteExplorerFailure,
            scope    : this
        });
        
        //The script method returns a single-field object containing the
        //tranaction id:
        YAHOO.log("Get Utility transaction started; transaction object: " + YAHOO.lang.dump(transactionObj), "info", "example");

        // keep track of the current transaction id.  The transaction will be
        // considered complete only if the web service callback is executed.
        current = transactionObj.tId; 
    }
    return {
        init: function() {
                
            //suppress default form behavior
            Event.on("siteExplorer", "submit", function(e) {
                Event.preventDefault(e);
                getSiteExplorerData();
            }, this, true);
        
            //instantiate Button:
            var oButton = new Button("getSiteExplorerData");
            YAHOO.log("Button instantiated.", "info", "example");
        },

        callback: function(results) {
            YAHOO.log("Web service returned data to YAHOO.example.SiteExplorer.callback; beginning to process.", "info", "example");

            // Mark the transaction as complete.  This will be checked by the onSuccess
            // handler to determine if the transaction really succeeded.
            tIds[current] = true;
            
            //work with the returned data to extract meaningful fields:
            var aResults = results.ResultSet.Result;
            var totalLinks = results.ResultSet.totalResultsAvailable;
            var returnedLinkCount = results.ResultSet.totalResultsReturned;
            
            if(aResults) {//there are inbound links; process and display them:
            
                //write header and open list of inbound links:          
                var html = "<h3>There are " +
                    totalLinks + 
                    " inbound links for this page; here are the first " + 
                    returnedLinkCount +
                    ":</h3><ol>";
                
                //process list of inbound links:
                for (var i=0; i < aResults.length; i++) {
                    html += "<li><strong>" +
                        aResults[i].Title +
                        ":</strong> <a href='" +
                        aResults[i].Url +
                        "'>" + aResults[i].Url +
                        "</a></li>";
                }
                
                //close list of inbound links
                html += "</ol>";
                
            } else {//no inbound links exist for this page:
            
                var html = "<h3>There are no inbound links for the page specified.</h3";
                
            }
            
            //insert string into DOM:
            elResults.innerHTML = html;
        }
    }
}();

//Initialize the example when the DOM is completely loaded:
YAHOO.util.Event.onDOMReady(
    YAHOO.example.SiteExplorer.init, 
    YAHOO.example.SiteExplorer,         //pass this object to init and...
    true);                              //...run init in the passed object's
                                        //scope


</script>
	
	<!--END SOURCE CODE FOR EXAMPLE =============================== -->
	
		
		</div>
		
	
	</div>			
	</div>
		
	<h2 class="first">Using the Get Utility to Get a Script File with JSON-formatted Contents</h2>

<p>Here, we'll use <a href="http://developer.yahoo.com/yui/get/">the YUI Get Utility</a> to retrieve data via the <a href="http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html">Yahoo! Search Site-Explorer web service</a>, one of many Yahoo! APIs that support JSON.</p>

<p>This example has the following dependencies:</p>

<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.9.0/build/button/assets/skins/sam/button.css" />
<script type="text/javascript" src="http://yui.yahooapis.com/2.9.0/build/yahoo-dom-event/yahoo-dom-event.js"></script>
<script type="text/javascript" src="http://yui.yahooapis.com/2.9.0/build/element/element.js"></script>
<script type="text/javascript" src="http://yui.yahooapis.com/2.9.0/build/button/button.js"></script>
<script type="text/javascript" src="http://yui.yahooapis.com/2.9.0/build/get/get.js"></script></textarea>

<p>First, we create a plain HTML form that will work for users who do not have JavaScript enabled:</p>


<textarea name="code" class="HTML" cols="60" rows="1"><div id="container">

	<!--Use a real form that works without JavaScript:-->
	<form method="GET" action="http://siteexplorer.search.yahoo.com/advsearch" id="siteExplorer">

        <label for="searchString">Site URL:</label> <input type="text" name="searchString" id="p" value="http://developer.yahoo.com/yui" size="40">
        
        <input type="hidden" name="bwm" value="i">
        <input type="hidden" name="bwms" value="p">
    
        <input type="submit" id="getSiteExplorerData" value="Click here to get JSON data.">
    
    </form>

	<div id="results">
    	<!--JSON output will be written to the DOM here-->
        
    </div>
</div></textarea>

<p>With this in place, we can progressively enhance the form to create an in-page interaction for users with JavaScript turned on.</p>

<p>The most important JavaScript piece here is the method that we fire on form submission.  This method triggers our call to the Get Utility. This method, called <code>getSiteExplorerData</code>, accomplishes four things:</p>
<ol>
  <li>It loads a transitional state for the display, alerting the user to the fact that data is being retrieved as a result of her action (line 7ff);</li>
  <li>It prepares the URL that will be passed to the Get Utility (line 13ff);</li>
  <li>It calls the Get Utility, passing in the URL of the script resource to load (in this case, the URL of our web service with the relevant paramaters assembled in the querystring) (line 22ff);</li>
  <li>It specifies the callback (line 23) and the scope in which the callback should run (line 24). Note that in this example the web service itself provides callback functionality, allowing us to pass a globally accessible callback function name as one of the parameters of the REST API; you can see this reference in line 16 below. As a result, we're making direct use of the intrinsic web service callback in this example and just stubbing out the built-in Get Utility callback for the sake of illustration.</li>
</ol>
<p>
  <textarea name="code" class="JScript" cols="60" rows="1">//function to retrieve data from Yahoo! Site Explorer web service --
// http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html
var getSiteExplorerData = function() {
    YAHOO.log("Button clicked; getSiteExplorerData firing.", "info", "example");

    // block multiple requests
    if (loading) {
        return;
    }
    loading = true;
    
    //Load the transitional state of the results section:
    elResults.innerHTML = "<h3>Retrieving incoming links for " +
        Dom.get("searchString").value + ":</h3>" +
        "<img src='http://l.yimg.com/a/i/nt/ic/ut/bsc/busybar_1.gif' " +
        "alt='Please wait...'>";
    
    //prepare the URL for the Yahoo Site Explorer API:
    var sURL = "http://search.yahooapis.com/SiteExplorerService/V1/inlinkData?" +
        "appid=3wEDxLHV34HvAU2lMnI51S4Qra5m.baugqoSv4gcRllqqVZm3UrMDZWToMivf5BJ3Mom" +
        "&results=20&output=json&omit_inlinks=domain" +
        "&callback=YAHOO.example.SiteExplorer.callback" +
        "&query=" + encodeURIComponent(Dom.get("searchString").value);
    
    //This simple line is the call to the Get Utility; we pass
    //in the URL and the configuration object, which in this case
    //consists merely of our success and failure callbacks:
    var transactionObj = Get.script(sURL, {
        onSuccess: onSiteExplorerSuccess,
        onFailure: onSiteExplorerFailure,
        scope    : this
    });
    
    //The script method returns a single-field object containing the
    //tranaction id:
    YAHOO.log("Get Utility transaction started; transaction object: " + YAHOO.lang.dump(transactionObj), "info", "example");

    // keep track of the current transaction id.  The transaction will be
    // considered complete only if the web service callback is executed.
    current = transactionObj.tId; 
}
</textarea>
</p>
<p>The full JavaScript codeblock for this example reads as follows:</p>
<textarea name="code" class="JScript" cols="60" rows="1">//create a namespace for this example:
YAHOO.namespace("example.SiteExplorer");

//This example uses the "Module Pattern"; a full explanation of 
//this pattern can be found on yuiblog:
// http://yuiblog.com/blog/2007/06/12/module-pattern
YAHOO.example.SiteExplorer = function() {

    //set up some shortcuts in case our typing fingers
    //get lazy:
    var Event = YAHOO.util.Event,
        Dom = YAHOO.util.Dom,
        Button = YAHOO.widget.Button,
        Get = YAHOO.util.Get,
        elResults = Dom.get("results"),
        tIds = {},
        loading = false,
        current = null;
        
    // We use the Get Utility's success handler in conjunction with
    // the web service callback in order to detect bad responses 
    // from the web service.
    var onSiteExplorerSuccess = function(o) {

        // stop blocking requests
        loading = false;

        // A success response means the script node is inserted.  However, the
        // utility is unable to detect whether or not the content of the script
        // node is correct, or even if there was a bad response (like a 404
        // error).  To get around this, we use the web service callback to
        // verify that the script contents was correct.
        if (o.tId in tIds) {
YAHOO.log("The Get Utility has fired the success handler indicating that the " +
          "requested script has loaded and is ready for use.", "info", "example");
        } else {
YAHOO.log("The Get utility has fired onSuccess but the webservice callback did not " +
          "fire.  We could retry the transaction here, or notify the user of the " +
          "failure.", "info", "example");
        }

    }

    var onSiteExplorerFailure = function(o) {
YAHOO.log("The Get Utility failed.", "info", "example");
    }
    
    //function to retrieve data from Yahoo! Site Explorer web service --
    // http://developer.yahoo.com/search/siteexplorer/V1/inlinkData.html
    var getSiteExplorerData = function() {
        YAHOO.log("Button clicked; getSiteExplorerData firing.", "info", "example");

        // block multiple requests
        if (loading) {
            return;
        }
        loading = true;
        
        //Load the transitional state of the results section:
        elResults.innerHTML = "<h3>Retrieving incoming links for " +
            Dom.get("searchString").value + ":</h3>" +
            "<img src='http://l.yimg.com/a/i/nt/ic/ut/bsc/busybar_1.gif' " +
            "alt='Please wait...'>";
        
        //prepare the URL for the Yahoo Site Explorer API:
        var sURL = "http://search.yahooapis.com/SiteExplorerService/V1/inlinkData?" +
            "appid=3wEDxLHV34HvAU2lMnI51S4Qra5m.baugqoSv4gcRllqqVZm3UrMDZWToMivf5BJ3Mom" +
            "&results=20&output=json&omit_inlinks=domain" +
            "&callback=YAHOO.example.SiteExplorer.callback" +
            "&query=" + encodeURIComponent(Dom.get("searchString").value);
        
        //This simple line is the call to the Get Utility; we pass
        //in the URL and the configuration object, which in this case
        //consists merely of our success and failure callbacks:
        var transactionObj = Get.script(sURL, {
            onSuccess: onSiteExplorerSuccess,
            onFailure: onSiteExplorerFailure,
            scope    : this
        });
        
        //The script method returns a single-field object containing the
        //tranaction id:
        YAHOO.log("Get Utility transaction started; transaction object: " + YAHOO.lang.dump(transactionObj), "info", "example");

        // keep track of the current transaction id.  The transaction will be
        // considered complete only if the web service callback is executed.
        current = transactionObj.tId; 
    }
    return {
        init: function() {
                
            //suppress default form behavior
            Event.on("siteExplorer", "submit", function(e) {
                Event.preventDefault(e);
                getSiteExplorerData();
            }, this, true);
        
            //instantiate Button:
            var oButton = new Button("getSiteExplorerData");
            YAHOO.log("Button instantiated.", "info", "example");
        },

        callback: function(results) {
            YAHOO.log("Web service returned data to YAHOO.example.SiteExplorer.callback; beginning to process.", "info", "example");

            // Mark the transaction as complete.  This will be checked by the onSuccess
            // handler to determine if the transaction really succeeded.
            tIds[current] = true;
            
            //work with the returned data to extract meaningful fields:
            var aResults = results.ResultSet.Result;
            var totalLinks = results.ResultSet.totalResultsAvailable;
            var returnedLinkCount = results.ResultSet.totalResultsReturned;
            
            if(aResults) {//there are inbound links; process and display them:
            
                //write header and open list of inbound links:          
                var html = "<h3>There are " +
                    totalLinks + 
                    " inbound links for this page; here are the first " + 
                    returnedLinkCount +
                    ":</h3><ol>";
                
                //process list of inbound links:
                for (var i=0; i < aResults.length; i++) {
                    html += "<li><strong>" +
                        aResults[i].Title +
                        ":</strong> <a href='" +
                        aResults[i].Url +
                        "'>" + aResults[i].Url +
                        "</a></li>";
                }
                
                //close list of inbound links
                html += "</ol>";
                
            } else {//no inbound links exist for this page:
            
                var html = "<h3>There are no inbound links for the page specified.</h3";
                
            }
            
            //insert string into DOM:
            elResults.innerHTML = html;
        }
    }
}();

//Initialize the example when the DOM is completely loaded:
YAHOO.util.Event.onDOMReady(
    YAHOO.example.SiteExplorer.init, 
    YAHOO.example.SiteExplorer,         //pass this object to init and...
    true);                              //...run init in the passed object's
                                        //scope
</textarea>

<h2>Configuration for This Example</h2>

<p>You can load the necessary JavaScript and CSS for this example from Yahoo's servers.  <a href="http://developer.yahoo.com/yui/articles/hosting/?button&dom&get&MIN#configure">Click here to load the YUI Dependency Configurator with all of this example's dependencies preconfigured</a>.</p>

				</div>
				<div class="yui-u">
						<div id="loggerModule" class="yui-skin-sam">
						<h3 class="firstContent">YUI Logger Output:</h3>
								<div id="loggerDiv"></div>
						</div>
					
				
					<div id="examples">
						<h3>Get Utility Examples:</h3>
	
						<div id="exampleToc">
							<ul>
								<li><a href='../get/get-script-simple.html'>Quickstart Example: Getting a Script File with YUI Get</a></li><li class='selected'><a href='../get/get-script-basic.html'>Getting a Script Node with JSON Data from a Web Service</a></li><li><a href='../get/get-css-basic.html'>Getting CSS Style Sheets</a></li><li><a href='../layout/adv_layout.html'>Complex Application (included with examples for Layout Manager)</a></li>							</ul>
						</div>
					</div>
					
					<div id="module">
						<h3>More Get Utility Resources:</h3>
						<ul>
							<li><a href="http://developer.yahoo.com/yui/get/">User's Guide</a> (external)</li>
						<li><a href="../../docs/module_get.html">API Documentation</a></li>
                            
                            
							<li><a href="http://yuiblog.com/assets/pdf/cheatsheets/get.pdf">Cheat Sheet PDF</a> (external)</li></ul>
					</div>
			  </div>
		</div>
		
		</div>
	</div>


<div class="yui-b" id="tocWrapper">
<!-- TABLE OF CONTENTS -->
<div id="toc">
	
<ul>
<li class="sect first">Yahoo! UI Library</li><li class="item"><a title="The Yahoo! User Interface Library (YUI)" href="http://developer.yahoo.com/yui/">Home (external)</a></li><li class="item"><a title="The Yahoo! User Interface Blog" href="http://yuiblog.com">YUIBlog (external)</a></li><li class="item"><a title="YUILibrary.com hosts the YUI community forums" href="http://yuilibrary.com/forum/">YUI Discussion Forum (external)</a></li><li class="item"><a title="The YUI Library source can be checked out from GitHub" href="http://github.com/yui/">YUI on GitHub</a></li><li class="item"><a title="Instantly searchable API documentation for the entire YUI library." href="../../docs/index.html">API Documentation</a></li><li class="item"><a title="Examples of every YUI utility and control in action" href="../../examples/">Functional Examples</a></li><li class="item"><a title="Videos and podcasts from the YUI Team and from the Yahoo! frontend engineering community." href="http://developer.yahoo.com/yui/theater/">YUI Theater (external)</a></li><li class="item"><a title="YUI is free and open, offered under a BSD license." href="http://developer.yahoo.com/yui/license.html">YUI License (external)</a></li><li class="sect">YUI Functional Examples</li><li class="item"><a title="The YUI Animation Utility - Functional Examples" href="../../examples/animation/index.html">Animation</a></li><li class="item"><a title="The YUI AutoComplete Control - Functional Examples" href="../../examples/autocomplete/index.html">AutoComplete</a></li><li class="item"><a title="The YUI Browser History Manager - Functional Examples" href="../../examples/history/index.html">Browser History Manager</a></li><li class="item"><a title="The YUI Button Control - Functional Examples" href="../../examples/button/index.html">Button</a></li><li class="item"><a title="The YUI Calendar Control - Functional Examples" href="../../examples/calendar/index.html">Calendar</a></li><li class="item"><a title="The YUI Carousel Control - Functional Examples" href="../../examples/carousel/index.html">Carousel</a></li><li class="item"><a title="The YUI Charts Control - Functional Examples" href="../../examples/charts/index.html">Charts</a></li><li class="item"><a title="The YUI Color Picker Control - Functional Examples" href="../../examples/colorpicker/index.html">Color Picker</a></li><li class="item"><a title="The YUI Cookie Utility - Functional Examples" href="../../examples/cookie/index.html">Cookie</a></li><li class="item"><a title="The YUI Connection Manager (AJAX) - Functional Examples" href="../../examples/connection/index.html">Connection Manager</a></li><li class="item"><a title="The YUI Container Family (Module, Overlay, Tooltip, Panel, Dialog, SimpleDialog) - Functional Examples" href="../../examples/container/index.html">Container</a></li><li class="item"><a title="The YUI DataTable Control - Functional Examples" href="../../examples/datatable/index.html">DataTable</a></li><li class="item"><a title="The YUI Dom Collection - Functional Examples" href="../../examples/dom/index.html">Dom</a></li><li class="item"><a title="The YUI Drag &amp; Drop Utility - Functional Examples" href="../../examples/dragdrop/index.html">Drag &amp; Drop</a></li><li class="item"><a title="The YUI Event Utility - Functional Examples" href="../../examples/event/index.html">Event</a></li><li class="selected "><a title="The YUI Get Utility - Functional Examples" href="../../examples/get/index.html">Get</a></li><li class="item"><a title="The YUI ImageCropper Control - Functional Examples" href="../../examples/imagecropper/index.html">ImageCropper</a></li><li class="item"><a title="The YUI ImageLoader Utility - Functional Examples" href="../../examples/imageloader/index.html">ImageLoader</a></li><li class="item"><a title="The YUI JSON Utility - Functional Examples" href="../../examples/json/index.html">JSON</a></li><li class="item"><a title="The YUI Layout Manager - Functional Examples" href="../../examples/layout/index.html">Layout Manager</a></li><li class="item"><a title="The YUI Logger Control - Functional Examples" href="../../examples/logger/index.html">Logger</a></li><li class="item"><a title="The YUI Menu Control - Functional Examples" href="../../examples/menu/index.html">Menu</a></li><li class="item"><a title="The YUI Paginator - Functional Examples" href="../../examples/paginator/index.html">Paginator</a></li><li class="item"><a title="The YUI Profiler Utility - Functional Examples" href="../../examples/profiler/index.html">Profiler</a></li><li class="item"><a title="The YUI ProfileViewer Control - Functional Examples" href="../../examples/profilerviewer/index.html">ProfilerViewer</a></li><li class="item"><a title="The YUI ProgressBar Control - Functional Examples" href="../../examples/progressbar/index.html">ProgressBar</a></li><li class="item"><a title="The YUI Resize Utility - Functional Examples" href="../../examples/resize/index.html">Resize</a></li><li class="item"><a title="The YUI Rich Text Editor - Functional Examples" href="../../examples/editor/index.html">Rich Text Editor</a></li><li class="item"><a title="The YUI Selector Utility - Functional Examples" href="../../examples/selector/index.html">Selector</a></li><li class="item"><a title="The YUI Slider Control - Functional Examples" href="../../examples/slider/index.html">Slider</a></li><li class="item"><a title="The YUI Storage Utility - Functional Examples" href="../../examples/storage/index.html">Storage</a></li><li class="item"><a title="The YUI SWF Utility - Functional Examples" href="../../examples/swf/index.html">SWF</a></li><li class="item"><a title="The YUI SWFStore Utility - Functional Examples" href="../../examples/swfstore/index.html">SWFStore</a></li><li class="item"><a title="The YUI Stylesheet Utility - Functional Examples" href="../../examples/stylesheet/index.html">Stylesheet</a></li><li class="item"><a title="The YUI TabView Control - Functional Examples" href="../../examples/tabview/index.html">TabView</a></li><li class="item"><a title="The YUI TreeView Control - Functional Examples" href="../../examples/treeview/index.html">TreeView</a></li><li class="item"><a title="The YUI Uploader Utility - Functional Examples" href="../../examples/uploader/index.html">Uploader (experimental)</a></li><li class="item"><a title="The YUI YAHOO Global Object - Functional Examples" href="../../examples/yahoo/index.html">YAHOO Global Object</a></li><li class="item"><a title="The YUI Loader Utility - Functional Examples" href="../../examples/yuiloader/index.html">YUI Loader</a></li><li class="item"><a title="The YUI Test Utility - Functional Examples" href="../../examples/yuitest/index.html">YUI Test</a></li><li class="item"><a title="YUI Reset CSS - Functional Examples" href="../../examples/reset/index.html">Reset CSS</a></li><li class="item"><a title="YUI Base CSS - Functional Examples" href="../../examples/base/index.html">Base CSS</a></li><li class="item"><a title="YUI Fonts CSS - Functional Examples" href="../../examples/fonts/index.html">Fonts CSS</a></li><li class="item"><a title="YUI Grids CSS - Functional Examples" href="../../examples/grids/index.html">Grids CSS</a></li><li class="sect">YUI Articles on the YUI Website</li><li class="item"><a title="Answers to Frequently Asked Questions about the YUI Library" href="http://developer.yahoo.com/yui/articles/faq/">YUI FAQ (external)</a></li><li class="item"><a title="Yahoo!'s philosophy of Graded Browser Support" href="http://developer.yahoo.com/yui/articles/gbs/">Graded Browser Support (external)</a></li><li class="item"><a title="Reporting Bugs and Making Feature Requests for YUI Components" href="http://developer.yahoo.com/yui/articles/reportingbugs/">Bug Reports/Feature Requests (external)</a></li><li class="item"><a title="Serve YUI source files from Yahoo! -- free, fast, and simple" href="http://developer.yahoo.com/yui/articles/hosting/">Serving YUI Files from Yahoo! (external)</a></li><li class="item"><a title="Best practices for working with web services while protecting user privacy" href="http://developer.yahoo.com/security/">Security Best Practices (external)</a></li></ul>
</div>
</div>
	</div><!--closes bd-->

	<div id="ft">
        <p class="first">Copyright &copy; 2011 Yahoo! Inc. All rights reserved.</p>
        <p><a href="http://privacy.yahoo.com/privacy/us/devel/index.html">Privacy Policy</a> - 
            <a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> - 
            <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> - 
            <a href="http://careers.yahoo.com/">Job Openings</a></p>
	</div>
</div>
<script src="../../assets/syntax.js"></script>
<script src="../../assets/dpSyntaxHighlighter.js"></script>
<script language="javascript"> 
dp.SyntaxHighlighter.HighlightAll('code'); 
</script>

<script src='../../assets/YUIexamples.js'></script>


</body>
</html>
